package Negocio;

import Persistencia.ClienteDAO;
import Persistencia.DespesaDAO;
import Persistencia.AutomovelDAO;
import Persistencia.FuncionarioDAO;
import java.io.IOException;
import java.util.ArrayList;

public class Gerencia {

    ClienteDAO db = new ClienteDAO();
    FuncionarioDAO db2 = new FuncionarioDAO();
    AutomovelDAO db3;
    DespesaDAO db4;

    public Gerencia() throws IOException {
        db3 = new AutomovelDAO();
        db4 = new DespesaDAO();
    }

    public void adicionaCli(String nome, String cpf,String cnh, String endereco, String cidade) throws IOException {
        db.incluir(new Cliente(nome, cpf,cnh, endereco, cidade));
    }

    public ArrayList<Cliente> listaCli() throws IOException {

        return db.consulta();
    }

    public ArrayList<Cliente> consultaCliNo(String nome) throws IOException {
        return db.consultaPorNome(nome);
    }
     public ArrayList<Cliente> consultaCliNumero(int numero) throws IOException {
        return db.consultaPorNumero(numero);
    }

    public void trocaCli(int numero,String nome, String cpf, String endereco, String cidade) throws IOException {

        db.trocar(new Cliente(numero,nome,cpf,endereco,cidade));
    }

    public void adicionaFun(String n, String e, String cp, Double s) throws IOException {
        db2.incluir(new Funcionario(n, e, cp, s));
    }

    public ArrayList<Funcionario> listaFun() throws IOException {
        return db2.consulta();
    }

    public ArrayList<Funcionario> consultaFunNo(String nome) throws IOException {
        return db2.consultaPorNome(nome);
    }
    public void trocaFuncionario(int nu,String no,String e,String cp,Double s) throws IOException {

        db2.trocar(new Funcionario(nu,no,e,cp,s));
    }
    public void adicionaFil(String nf, String g, String cl, int c) throws IOException {
        db3.incluir(new Automovel(nf, g, cl, c));
    }

    public ArrayList<Automovel> listaFil() throws IOException {
        return db3.consulta();
    }
     public void trocaFil(int co ,String no, String ge, String cla, int cp) throws IOException {

        db3.trocar(new Automovel(co,no,ge,cla,cp));
    }

    public ArrayList<Automovel> consultaFilNo(String nome) throws IOException {
        return db3.consultaPorNome(nome);
    }

    public void adicionaDespesa(String d, int q, double pU, double pT) throws IOException {
        db4.incluir(new Despesa(d, q, pU, q * pU));
    }

    public ArrayList<Despesa> listaDespesa() throws IOException {

        return db4.consulta();
    }

    public ArrayList<Despesa> consultaDespesa(String nome) throws IOException {

        return db4.consultaPorNome(nome);
    }
}
